CLCK 02: Базовая конфигурация ClickHouse

Описание:

Теперь, когда ClickHouse уже установлен, мы можем более детально посмотреть на его конфигурацию. Основной конфигурационный файл - это config.xml, который расположен в папке по умолчанию /etc/clickhouse-server.

Любые изменения можно вносить сразу в этот файл, либо создать отдельный файл конфигурации и положить его в папку /etc/clickhouse-server/config.d/. В этом случае данные отдельного конфига перепишут значения по-умолчанию. Помимо этого кликхаус для части параметров может обновлять их значения на лету - достаточно всего лишь обновить параметр в файле и кликхаус применит его. Давайте рассмотрим некоторые ключевые параметры:

<http_port>/<https_port>

Порт для обращений к серверу по протоколу HTTP(s). При использовании https нужна конфигурация openSSL.

Пример: <https_port>9999</https_port> <http_port>8123</http_port>

<tcp_port>

Порт для общения с клиентами по TCP протоколу. Здесь стоит отметить, что кликхаус поддерживает два режима подключений - по http и по бинарному протоколу. Очевидно, что общение по бинарному протоколу идет быстрее чем по http, но http наиболее распространен и его очень легко интегрировать в ваше приложение для чтения и записи данных, поэтому определяющим фактором выбора протокола (как чаще всего и бывает) будет именно скорость внедрения в ваши сервисы.

Пример: <tcp_port>9000</tcp_port>

<interserver_http_port>

Порт для обмена репликационными данными с серверами ClickHouse.

Пример: <interserver_http_port>9009</interserver_http_port>

<listen_host>

На каких хостах слушать входящие подключения.

Примеры: <listen_host>::</listen_host> — сервер слушает все адреса. <listen_host>::1</listen_host> — сервер слушает ipv6 localhost. <listen_host>127.0.0.1</listen_host> — сервер слушает только запросы с localhost. <listen_host>0.0.0.0</listen_host> — сервер слушает все запросы с ipv4 адресов.

<max_connections>

Максимальное количество входящих соединений.

Примеры: <max_connections>4096</max_connections>

<max_concurrent_queries>

Максимальное количество одновременно обрабатываемых запросов. Очень важный параметр, поскольку иногда быстрее обработать 100 запросов последовательно с максимальным параллелизом 10 штук, нежели пытаться обработать сразу все 100 запросов в параллель.

Примеры: <max_concurrent_queries>100</max_concurrent_queries>

<users_config>

Путь к файлу, который отвечает за конфигурацию пользователей, права, профили и квоты. Мы затронем эту тему в следующем задании.

Пример: <users_config>users.xml</users_config>

<http_server_default_response>

Контент, который возвращается при обращении к HTTP(s) серверу. По умолчанию сервер отдает "Ok." Таким образом вы сможете настроить базовую проверку доступности вашего кликхаус сервера - если подключение на http порт удалось и сервер вернул код ответа 200 - значит он по крайней мере запущен.

Пример: <http_server_default_response>Success!</http_server_default_response>

Путь к данным ClickHouse. Завершающий слеш обязателен. На самом деле данный путь вам понадобится либо при создании бекапов, либо при восстановлении после сбоя. Мы не рекомендуем менять дефолтное расположение, чтобы не сбивать с толку других участников команды поддержки. Если же вы хотите вынести ваши данные на более быстрые диски - то есть смысл подмонтировать их напрямую в /var/lib/clickhouse.

Пример: <path>/var/lib/clickhouse/</path>

Здесь были выделены только основные пункты конфигурации ClickHouse, все возможные опции вы можете найти здесь. Часть из них мы будем обсуждать в следующих заданиях при настройке соответствующих функций.

В завершении хотелось бы отметить, что если вы хотите переопределить какие-либо настройки, то есть смысл записать их в отдельный файл в директорию /etc/clickhouse-server/config.d/. Например, вы можете создать файл my-config.xml по пути /etc/clickhouse-server/config.d/my-config.xml, который переопределяет http port, который будет слушать сервер.

<?xml version="1.0"?>
<yandex>
 <http_port>8663</http_port>
</yandex>

Мы советуем использовать этот функционал по максимому и переопределять настройки КХ в отдельных файлах, тогда у вас не возникнет проблем с обновлением сервера - дефолтная конфигурация может быть легко перезаписана, поскольку все изменения вы вынесли в отдельные файлы.

Полезные ссылки:

Задание. Правила:

  1. После нажатия кнопки «Начать выполнение» для вас будет подготовлено окружение и предоставлены необходимые доступы.
  2. Также вам будут выданы переменные (если они будут нужны), которые в задании указаны в фигурных скобках, — их надо будет подставить при выполнении задания.
  3. После выполнения всех пунктов задания нажмите кнопку «Отправить на проверку», и в течение ближайших 3-5 минут скрипт проверит выполнение всех условий и выставит вам оценку.
  4. В случае, если вы что-то забыли, можно исправить ошибки и отправить на проверку повторно.
  5. Также, если вы успешно сдали задание, но у вас остались вопросы — вы всегда сможете задать их куратору после проверки или в чате в любое удобное для вас время.

Задание:

  1. Установите clickhouse на сервер из официальных репозиториев.
  2. Создайте отдельный конфигурационный файл main.xml, который будет переопределять базовые параметры сервера:
    • http порт слушает 8125, а в ответ отдает "You reached CH http port";
    • часовой пояс по умолчанию - UTC;
    • максимальное количество соединений - 100;
  3. Проверьте доступность http порта, используя curl (не забывайте про перезагрузку сервиса).
  4. Если все работает корректно, тогда отправляйте задание на проверку.